package com.sj.app.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;

import com.alibaba.dubbo.config.*;

/**
 * Dubbo config
 *
 * @see ApplicationConfig
 * @see RegistryConfig
 * @see ConsumerConfig
 */
@Configuration
public class DubboConfiguration {

//	@Bean
//	public ApplicationConfig applicationConfig() {
//		ApplicationConfig applicationConfig = new ApplicationConfig();
//
//		applicationConfig.setName("sj-dubbo-app");
//		applicationConfig.setOwner("swallow");
//		applicationConfig.setOrganization("sj");
//		return applicationConfig;
//	}
//
//	@Bean
//	public RegistryConfig registryConfig() {
//		String zkAddress = "127.0.0.1";
//		RegistryConfig registryConfig = new RegistryConfig();
//
//		registryConfig.setProtocol("zookeeper");
//		registryConfig.setAddress(zkAddress);
//		registryConfig.setCheck(false);
//
//		return registryConfig;
//	}
//
//	@Bean
//	public ProtocolConfig protocolConfig(){
//		ProtocolConfig protocolConfig = new ProtocolConfig();
//		protocolConfig.setName("dubbo");
//		protocolConfig.setPort(20800);
//		protocolConfig.setHeartbeat(0);
//		protocolConfig.setThreadpool("cached");
//		protocolConfig.setThreads(1000);
//		return protocolConfig;
//	}
//
//	@Bean
//	public ProviderConfig providerConfig(){
//		ProviderConfig providerConfig = new ProviderConfig();
//		providerConfig.setId("com.sj.default.rpc.provider");
//		providerConfig.setTimeout(10000);
//		providerConfig.setRetries(5);
//		providerConfig.setLoadbalance("roundrobin");
//		providerConfig.setCluster("failover");
//		providerConfig.setRegistry(registryConfig());
//		providerConfig.setProtocol(protocolConfig());
//		return providerConfig;
//	}


	/**
	 * Dubbo Scan consumer config
	 */
	@ImportResource({ "classpath:dubbo/*.xml" })
	@Configuration
	public class ScanConfiguration {

	}

}
